package org.example.mpdemo.controller;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.example.mpdemo.entity.User;
import org.example.mpdemo.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class UserController {
    //    自动注入，不用实例化
    @Autowired
    private UserMapper userMapper;

    @GetMapping("/user/findAll")
    public List<User> find() {
        return userMapper.selectAllUsersAndOrders();
    }

    //    条件查询
    @GetMapping("/user/find")
    public List<User> findByCond() {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("username", "zhangsan");
        return userMapper.selectList(queryWrapper);
    }

    //    分页查询
    @GetMapping("/user/findPage")
    public IPage findPage() {
//        设置起始页码和每页显示数量
        Page<User> page = new Page<>(0, 2);
        IPage<User> iPage = userMapper.selectPage(page, null);
        return iPage;
    }


    @GetMapping("/user")
//    不返回String，而是直接返回List。List会自动转换成json格式。
    public List query() {
        List<User> list = userMapper.selectList(null);
        System.out.println(list);
        return list;
    }

    //    传送时不传id，因为id是自动生成的。
    @PostMapping("/user")
    public String save(User user) {
        int i = userMapper.insert(user);
        System.out.println(user);
        if (i > 0) {
            return "插入成功";
        } else {
            return "插入失败";
        }
    }
}
